Businesses recognize the commercial value of their data and seek reliable, cost-effective ways to protect the information stored on their computer networks while minimizing impact on productivity. A company might back up critical computing systems such as databases, file servers, web servers, virtual machines, and so on as part of a daily, weekly, or monthly maintenance schedule. The company may similarly protect computing systems used by its employees, such as those used by an accounting department, marketing department, engineering department, and so forth. Given the rapidly expanding volume of data under management, companies also continue to seek innovative techniques for managing data growth, for example by migrating data to lower-cost storage over time, reducing redundant data, pruning lower priority data, etc. Enterprises also increasingly view their stored data as a valuable asset and look for solutions that leverage their data. For instance, data analysis capabilities, information management, improved data presentation and access features, and the like, are in increasing demand.
To improve reliability, fault-tolerance, and/or accessibility, a virtual machine (VM) running on a production client device can be replicated to one or more other target client devices. However, replicating the VM may not prevent possible data corruption. For example, an instruction executed by the VM running on the production client device may cause data corruption. This same instruction may be executed by the replicated VMs, thereby causing the same data corruption. Thus, in addition to replication, the VM running on the production client device may be backed up such that the VM can be restored, if necessary, to a point in time before the data corruption event.
In some cases, though, performing both replication and backup can overburden the production client device. For example, the replication and backup operations may each result in an I/O event. The multiple I/O events may consume resources that otherwise could be devoted to running the VM.